package com.skt.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.skt.domain.DTO.LoginDTO;
import com.skt.domain.DTO.UserDTO;
import com.skt.domain.DTO.request.ChangePasswordRequest;
import com.skt.domain.DTO.request.UpdateProfileRequest;
import com.skt.domain.PO.User;
import com.skt.domain.VO.UserVO;

import javax.validation.Valid;

/**
 * 用户接口
 */
// public interface 类名 extends IService<PO> {}
public interface UserService extends IService<User> {

    /**
     * 登录
     * @param loginDTO
     * @return VO
     */
    UserVO login(LoginDTO loginDTO);

    /**
     * 注册
     * @param loginDTO
     * @return
     */
    UserVO register( LoginDTO loginDTO);

    /**
     * 获取用户信息
     *
     * @return
     */
    UserVO getCurrentUser();

    /**
     * 更新个人资料
     * @param updateProfileRequest
     * @return
     */
    UserVO updateOwnProfile(@Valid UpdateProfileRequest updateProfileRequest);

    /**
     * 获取用户名(非核心接口)
     * @param username
     * @return
     */
    User getUserByUsername(String username);

    /**
     * 修改密码
     * @param request
     */
    void changePassword(@Valid ChangePasswordRequest request);
}
